home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 27 / CU Amiga Magazine's Super CD-ROM 27 (1998)(EMAP Images)(GB)[!][issue 1998-10].iso / CUCD / PowerPC / vbcc / machines / amigawos / libsrc / _chkabort.s next >
Text File  |  1998-08-02  |  974b  |  47 lines

  1. ##
  2. ## vbcc-PowerOpen/WarpOS version of _chkabort.c
  3. ##
  4. ## v1.0 08.07.98 phx
  5. ##    Deleted definition of @_-symbols. vlink will create them on demand.
  6. ##    vbcc-WarpOS is ready for beta stage.
  7. ## v0.4 03.05.98 phx
  8. ##    A silly bug: SetSignalPPC() returns the state of *all* signals
  9. ##    and not only the masked ones. An "andi." is required.
  10. ## v0.3 10.03.98 phx
  11. ##    Prefix for TOC symbols is "@_" and not "@".
  12. ## v0.2 03.03.98 phx
  13. ##    @__chkabort in .tocd was missing.
  14. ## v0.1 28.02.98 phx
  15. ##
  16.  
  17. .set    _LVOSetSignalPPC,-480
  18. .set    SIGBREAKF_CTRL_C,1<<12
  19.  
  20.     .text
  21.     .extern    _PowerPCBase
  22.     .extern    _exit
  23.  
  24.     .align    3
  25.     .global    __chkabort
  26. __chkabort:
  27.     mflr    r0
  28.     stw    r0,8(r1)
  29.     stwu    r1,-24(r1)
  30.     lwz    r3,_PowerPCBase(r2)
  31.     li    r4,0
  32.     li    r5,SIGBREAKF_CTRL_C
  33.     lwz    r0,_LVOSetSignalPPC+2(r3)
  34.     mtlr    r0
  35.     blrl                # SetSignalPPC()
  36.     andi.    r3,r3,SIGBREAKF_CTRL_C
  37.     beq    .1
  38.     li    r3,0
  39.     bl    _exit            # exit(0), on CTRL-C
  40. .1:    addi    r1,r1,24
  41.     lwz    r0,8(r1)
  42.     mtlr    r0
  43.     blr
  44.  
  45.     .type    __chkabort,@function
  46.     .size    __chkabort,$-__chkabort
  47.